package com.zw.pm.module.system.role;

import com.zw.pm.gen.entity.Role;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @Description: 角色数据访问层
 *
 * @Author: China.sgl
 * @Date: 2019/9/16 09:11
 */
@Repository
public interface RoleDao {

    /**
     * 根据 用户ID 查询角色
     *
     * @param id 用户ID
     * @return 角色集合
     */
    List<Role> findRolesByUserId(Integer id);

    /**
     * 根据角色名查询角色
     *
     * @param name 角色名
     * @return 角色
     */
    Role findByName(String name);

    /**
     * 批量添加角色权限关联关系
     *
     * @param id 角色
     * @param permissionIds 权限ID数组
     */
    void batchInsertRolePermissions(@Param("id") Integer id, @Param("permissionIds") Integer[] permissionIds);

    /**
     * 根据 角色id 删除角色权限关联关系
     *
     * @param id 角色id
     */
    void deleteRoleMenuByRoleId(Integer id);

    /**
     * 查询所有角色
     * @param role role
     * @return list
     */
    List<RoleModel> findAll(Role role);

    /**
     * 根据 pid 删除角色
     * @param id pid
     */
    void updateByPid(Integer id);
}